菜鸟学matlab之智能算法(1)------蚁群算法即相关代码实现详解

一.算法背景

 蚁群算法(Ant Algorithm简称AA)是近年来刚刚诞生的随机优化方法,它是一种源于大自然的新的仿生类算法。由意大利学者Dorigo最早提出,蚂蚁算法主要是通过蚂蚁群体之间的信息传递而达到寻优的目的,最初又称蚁群优化方法(Ant Colony Optimization简称ACO)。由于模拟仿真中使用了人工蚂蚁的概念,因此亦称蚂蚁系统(Ant System,简称AS)

二.简单说明


1)先看两张图


这里写图片描述这里写图片描述 图1-1显示了蚂蚁从巢穴出去觅食的过程,起初在遇到障碍的时候,会以相同的概率选择通过障碍的路径(即选择了两条路径假设为路径1和2,且每条路径上的蚂蚁数量是相同的)。而在图1-1(d)中,蚂蚁们却不再选择路径(2)),这就是蚁群算法的“双桥模型”,这是什么原因呢?

2)算法探究


  经过探究,上述的实验反应了蚂蚁在群体行为中的一种信息正反馈现象。蚂蚁个体间通过这种信息交流机制来搜索食物。而用来交流反馈的化学因素现在被我们称之为——————“信息素”。
  然后建立相关“双桥”实验的数学模型,首先,假设在对称桥的信息素的总数与过去一段时间内经过该桥的蚂蚁数目成正比(即每只蚂蚁都具有相同的信息素释放能力);其次,假设某时刻蚂蚁按照桥上残留信息量的多少来选择其中的某条路径,经过该路径的蚂蚁数目越多,则该桥上的残留信息素总量就越大。假设1-1图中的两条路径分别为A和B,Am和Bm分别表示通过路径A和B的蚂蚁数目。则当所有M(Am+Bm=M)只蚂蚁通过障碍后,第(M+1)只蚂蚁选择路径A的概率为

这里写图片描述
相反选择路径B的概率为
这里写图片描述
其中参数h(期望因子)和k(启发因子)用来匹配真实实验数据,第(M+1)只蚂蚁按照上述公式计算概率,然后生成一个区间在[0,1]上均匀分布的随机数w,若w<=P(A),则选择路径A,否则选择路径B.
—————————————————————————————

三。matlab相关代码实现(以TSP旅行商问题为例)

以下是解放军信息工程大学一个老师编的matlab程序,网上有很多版本,已经由本人添加注释并修改过请尊重原作者劳动,引用时请注明出处。
%符号说明
%SumOfant表示蚂蚁数量
%SumOfCity表示城市数量
%sight为距离的倒数,表示每条边的能见度
%Q表示信息素增强的系数
%nc_now表示当前的迭代次数
%nc_max表示自主设置的最大迭代次数  表示终止条件
%first_address表示测试数据中的城市坐标
%RouteOfBest表示各代的最佳路线  
%LengthOfBest表示每次迭代的最佳路线的长度
%a表示启发因子,表示信息素的相对重要程度
%b表示期望因子,表示能见度的重要性
%p表示信息素的蒸发系数,(1-p)表示信息素持久性系数
%length_address表示两两城市间的距离


for   n=1:size(first_address)
for m=1:size(first_address)
length_address(n,m)=[(first_address(n,1)-first_address(m,1))^2+(firs
  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值